/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package perfiladoinmdm;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.StringTokenizer;

/**
 *
 * @author mrequejo
 */

//programa para añadir el dia global en un archivo .txt
public class EscribirFichero {

    static String pathFicheroIn = "..\\input_data\\coeficientesREEprueba.txt";
    static String pathFicheroOut = "..\\input_data\\coeficientesREEprueba2.txt";

    static double[][] coeficientes = txt2Array(pathFicheroIn,8760,9);     
    
    public static void main(String[] Arguments) {
        EscribirFichero ef = new EscribirFichero();
        ef.plotMatrix(coeficientes);
        //escribir(); 
        ef.appendColumnFile(pathFicheroIn);
    }

    public static void plotMatrix(double[][] matrix) {
        //System.out.println("Pintando: "+ PerfiladoMedidas.getClass().getDeclaredFields()[0].getName());
        for (int i = 0; i < matrix.length; i++) {
            System.out.print("fila [" + i + "]: ");
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println("");
        }
        System.out.println("");
    }    
    
    public void appendColumnFile(String path) {
        
        //Para leer
        String linea = ""; //Cada linea del fichero.txt 
        FileReader fr = null;
        BufferedReader br = null;
        
        //Para escribir

//        FileWriter fichero = null;
//        PrintWriter pw = null;

        FileWriter fw = null;
        BufferedWriter bw = null;        

        try {

            //RECORRER EL FICHERO PARA COMPROBAR 
            //leer
            fr = new FileReader(pathFicheroIn);
            br = new BufferedReader(fr);
            //escribir
            fw = new FileWriter(pathFicheroOut);
            bw = new BufferedWriter(fw);   
            
            int countLineas = 0;
            String cadena;
            int col = 0;

            //Recorremos linea a linea el fichero 
            while (br.ready()) {
                linea = br.readLine();
                cadena = linea + " " + Integer.toString((int) coeficientes[countLineas][8]) ;
                System.out.println("Pintada la linea "+countLineas+": "+cadena);
                bw.write(cadena+"\n");
                bw.flush();
                
//                int numTokens = 0;
//                StringTokenizer st = new StringTokenizer(linea);
//
//                //System.out.println(countLineas);
//                col = 0;
//
//                // bucle por todas las palabras
//                while (st.hasMoreTokens()) {
//                    cadena = st.nextToken();
//                    //System.out.print(columnas + " ");
//
//                    double f = Double.parseDouble(cadena);
//                    matrix[countLineas][col] = f;
//                    col++;
//
//                }

                countLineas++;

            }
            //System.out.println("");
        } catch (FileNotFoundException e) {
            System.out.println("Errorx: " + e);
        } catch (IOException e) {
            System.out.println("Errorx: " + e);
        }

        // en la 9ª columna metemos el día global del año (1-365) 
        // (si es el archivo de coeficientes)
//        if (columnas > 8) {
//            matrix[0][8] = 1;
//            for (int i = 1; i < matrix.length; i++) {
//                if (matrix[i][1] == matrix[i - 1][1]) {
//                    matrix[i][8] = matrix[i - 1][8];
//                } else {
//                    matrix[i][8] = matrix[i - 1][8] + 1;
//                }
//
//            }
//        }

    }

    public static double[][] txt2Array(String path, int filas, int columnas) {

        String linea = ""; //Cada linea del fichero.txt 
        FileReader fr = null;
        BufferedReader br = null;

        double[][] matrix = new double[filas][columnas];

        try {

            //RECORRER EL FICHERO PARA COMPROBAR 
            fr = new FileReader(path);
            br = new BufferedReader(fr);
            int countLineas = 0;
            String cadena;
            int col = 0;

            //Recorremos linea a linea el fichero 
            while (br.ready()) {
                linea = br.readLine();
                int numTokens = 0;
                StringTokenizer st = new StringTokenizer(linea);

                //System.out.println(countLineas);
                col = 0;

                // bucle por todas las palabras
                while (st.hasMoreTokens()) {
                    cadena = st.nextToken();
                    //System.out.print(columnas + " ");

                    double f = Double.parseDouble(cadena);
                    matrix[countLineas][col] = f;
                    col++;

                }

                countLineas++;

            }
            //System.out.println("");
        } catch (FileNotFoundException e) {
            System.out.println("Errorx: " + e);
        } catch (IOException e) {
            System.out.println("Errorx: " + e);
        }

        // en la 9ª columna metemos el día global del año (1-365) 
        // (si es el archivo de coeficientes)
        if (columnas > 8) {
            matrix[0][8] = 1;
            for (int i = 1; i < matrix.length; i++) {
                if (matrix[i][1] == matrix[i - 1][1]) {
                    matrix[i][8] = matrix[i - 1][8];
                } else {
                    matrix[i][8] = matrix[i - 1][8] + 1;
                }

            }
        }
        return matrix;
    }

}
